/***************************************************************************
 创建者: 华磊
 开始时间: 2020.8.14
 copyright: (C) 华友高科
 修改说明: (每次有修改就添加一条，带有 修改人，修改时间，修改描述)
 example (1) hualei 2020.5.8 类的具体实现代码编写

 ***************************************************************************
 *  @file x.h
 *  功能:
 *
 *                                                                         *
 ***************************************************************************/
#ifndef ECATMASTERVREP_H
#define ECATMASTERVREP_H

#include "ecatmasterbase.h"

/**
 * @brief The EcatMasterVrep class vrep虚拟电机接口
 */
class EcatMasterVrep : public EcatMasterBase
{
public:
    EcatMasterVrep();
    ~EcatMasterVrep();

    // void start(int us); //creat and start thread
    // void stop();
    int setAlias(int node, unsigned short alias){}
    int sdoUpload(int node
                  ,int rObIndex
                  ,int rObSubIndex
                  ,LONG64 &rData
                  ,int &rDataLen){}
    int sdoDownload(int node
                    , int wObIndex
                    , int wObSubIndex
                    , LONG64 wData
                    , int wDataLen){}

    // void* run(void *);
protected:
    // void osSleepUs(int us);
    // void waitNextCycle();

    //at state
    void masterBootStrap(){}
    void masterError(){}
    void masterInit();
    void masterPreOp(){}
    void masterSafeOp(){}
    void masterOp();
    void updateDomainData();

    // void stateMachine();
    // void upgradeState();

    /**
     * @brief addMsg  , 添加消息反馈
     */
    void addMsg( int messageLevel,
                 std::string componentName,
                 std::string messageType,
                 int messageCode,
                 int robotId,
                 int parameter1 = 0,
                 int parameter2 = 0,
                 int parameter3 = 0,
                 int parameter4 = 0 );



public:

//    /**
//       * @brief tcpCounter, 用于定时检测tcp连接
//       */
//    int tcpCounter;
//    QVector<int> v_encoder_t;
//    QVector<float> v_homeData;//零点标定弧度值，vrep用

//    /**
//       * @brief pointProInterval   ,vrep模拟速率（取点位的时候跳过一定数量的点）
//       */
//    int  pointProInterval;
//    int  pointProInterval_counter;

//  private:
//    void vrep_update() ;

};

#endif // ECATMASTERVREP_H
